package com.example.understand_compose1.fet_databaseusage.data

import android.content.Context
import android.database.sqlite.SQLiteDatabase
import android.database.sqlite.SQLiteDatabase.CursorFactory
import android.database.sqlite.SQLiteOpenHelper
import android.util.Log
import com.example.understand_compose1.fet_databaseusage.data.const_db_res.db_name
import com.example.understand_compose1.fet_databaseusage.data.const_db_res.db_version

/*
1. 写一个类去继承SqliteOpenHelper
2. 创建构造方法，参数: 上下文，db名字，游标工厂，版本号
3. 创建实例对象，调用getReadableDatabase / getWritableDatabase就能创建数据库

 */

class DatabaseHelper(ctx: Context, name: String = db_name, factory: CursorFactory? = null, version: Int = db_version) :
    SQLiteOpenHelper(ctx, name, factory, version) {


    private val TAG: String = "DatabaseHelper"

    override fun onCreate(db: SQLiteDatabase?) {
        // 在这里实现数据库创建时的逻辑
        // 例如，创建表
        Log.d(TAG, "onCreate: 创建数据库表")
        // 在模拟器看/data/data/com.example.understand_compose1/databases/hello.db?
        val create_table_sql = "create table sucks (_id integer, name varchar, age integer, salary integer)"
        assert(db != null)
        db?.execSQL(create_table_sql)
    }

    override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {
        // 在这里实现数据库升级时的逻辑
        // 例如，根据版本号进行表的修改
        Log.d(TAG, "onUpgrade: 升级数据库")
        val modify_table_sql = "alter table sucks add phone integer"
        db?.execSQL(modify_table_sql)

    }
}